package com.heihei.demo03;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;

import java.io.FileInputStream;

public class StageInfo extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("Hello");
        //修改icon图标（在这里读取了本地图片）
        primaryStage.getIcons().add(new Image(new FileInputStream("C:\\Users\\12851\\Desktop\\图片测试\\表情包\\02.gif")));

        /* 设置最小化 */
//        primaryStage.setIconified(true);

        //设置最大化
//        primaryStage.setMaximized(true);

        //设置宽高
        primaryStage.setWidth(500);
        primaryStage.setHeight(500);

        //设置窗口出现的位置
        primaryStage.setX(200);
        primaryStage.setY(200);

        //固定大小（禁止改变窗口大小）
//        primaryStage.setResizable(false);

        //设置最大/最小 宽高
//        primaryStage.setMinHeight(300);
//        primaryStage.setMinWidth(300);
//        primaryStage.setMaxHeight(600);
//        primaryStage.setMaxWidth(600);

        //设置不透明度 （范围 0 -- 1）
        primaryStage.setOpacity(1);

        //设置窗口始终置顶
//        primaryStage.setAlwaysOnTop(true);

        //设置全屏（全屏必须要设置 scene）
//        primaryStage.setFullScreen(true);
//        primaryStage.setScene(new Scene(new Group()));

        //添加x坐标变化的监听器
        primaryStage.xProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                System.out.println("窗口x坐标：" + newValue);
            }
        });

        //添加监听事件（高度发生改变时，做调整）
//        primaryStage.heightProperty().addListener(new ChangeListener<Number>() {
//            @Override
//            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
//                System.out.println(oldValue + " --> " + newValue);
//            }
//        });


        //显示窗口
        primaryStage.show();

        //获取窗口的宽高
//        System.out.println("宽度：" + primaryStage.getWidth());
//        System.out.println("高度：" + primaryStage.getHeight());


        //关闭
//        primaryStage.close();

    }
}